package com.xqzgj.stock.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xqzgj.common.annotation.Excel;
import com.xqzgj.common.core.domain.BaseEntity;

/**
 * 供应商信息对象 supplier
 * 
 * @author zhoujiam
 * @date 2025-03-31
 */
public class Supplier extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 供应商ID */
    private Long id;

    /** 供应商编码 */
    @Excel(name = "供应商编码")
    private String supplierCode;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String supplierName;

    /** 供应商简称 */
    @Excel(name = "供应商简称")
    private String supplierShortName;

    /** 供应商类型（1生产商 2代理商 3经销商 4其他） */
    @Excel(name = "供应商类型", readConverterExp = "1=生产商,2=代理商,3=经销商,4=其他")
    private String supplierType;

    /** 供应商等级（1A级 2B级 3C级 4D级） */
    @Excel(name = "供应商等级", readConverterExp = "1=A级,2=B级,3=C级,4=D级")
    private String supplierLevel;

    /** 联系人 */
    @Excel(name = "联系人")
    private String contactPerson;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 联系邮箱 */
    @Excel(name = "联系邮箱")
    private String contactEmail;

    /** 联系地址 */
    @Excel(name = "联系地址")
    private String contactAddress;

    /** 邮政编码 */
    @Excel(name = "邮政编码")
    private String postCode;

    /** 传真号码 */
    @Excel(name = "传真号码")
    private String faxNumber;

    /** 营业执照号 */
    @Excel(name = "营业执照号")
    private String businessLicense;

    /** 税务登记号 */
    @Excel(name = "税务登记号")
    private String taxNumber;

    /** 开户银行 */
    @Excel(name = "开户银行")
    private String bankName;

    /** 银行账号 */
    @Excel(name = "银行账号")
    private String bankAccount;

    /** 开户名称 */
    @Excel(name = "开户名称")
    private String accountName;

    /** 付款方式（1现金 2转账 3支票 4其他） */
    @Excel(name = "付款方式", readConverterExp = "1=现金,2=转账,3=支票,4=其他")
    private String paymentMethod;

    /** 付款期限(天) */
    @Excel(name = "付款期限(天)")
    private Integer paymentPeriod;

    /** 交货方式（1自提 2送货 3快递 4其他） */
    @Excel(name = "交货方式", readConverterExp = "1=自提,2=送货,3=快递,4=其他")
    private String deliveryMethod;

    /** 交货期限(天) */
    @Excel(name = "交货期限(天)")
    private Integer deliveryPeriod;

    /** 信用额度 */
    @Excel(name = "信用额度")
    private Double creditLimit;

    /** 信用等级（1A 2B 3C 4D） */
    @Excel(name = "信用等级", readConverterExp = "1=A,2=B,3=C,4=D")
    private String creditLevel;

    /** 合作开始日期 */
    @Excel(name = "合作开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private String cooperationStartDate;

    /** 合作结束日期 */
    @Excel(name = "合作结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private String cooperationEndDate;

    /** 供应商状态（0停用 1正常） */
    @Excel(name = "供应商状态", readConverterExp = "0=停用,1=正常")
    private String status;

    /** 供应商评分 */
    @Excel(name = "供应商评分")
    private Double supplierScore;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setSupplierCode(String supplierCode) {
        this.supplierCode = supplierCode;
    }

    public String getSupplierCode() {
        return supplierCode;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierShortName(String supplierShortName) {
        this.supplierShortName = supplierShortName;
    }

    public String getSupplierShortName() {
        return supplierShortName;
    }

    public void setSupplierType(String supplierType) {
        this.supplierType = supplierType;
    }

    public String getSupplierType() {
        return supplierType;
    }

    public void setSupplierLevel(String supplierLevel) {
        this.supplierLevel = supplierLevel;
    }

    public String getSupplierLevel() {
        return supplierLevel;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson;
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPhone(String contactPhone) {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() {
        return contactPhone;
    }

    public void setContactEmail(String contactEmail) {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() {
        return contactEmail;
    }

    public void setContactAddress(String contactAddress) {
        this.contactAddress = contactAddress;
    }

    public String getContactAddress() {
        return contactAddress;
    }

    public void setPostCode(String postCode) {
        this.postCode = postCode;
    }

    public String getPostCode() {
        return postCode;
    }

    public void setFaxNumber(String faxNumber) {
        this.faxNumber = faxNumber;
    }

    public String getFaxNumber() {
        return faxNumber;
    }

    public void setBusinessLicense(String businessLicense) {
        this.businessLicense = businessLicense;
    }

    public String getBusinessLicense() {
        return businessLicense;
    }

    public void setTaxNumber(String taxNumber) {
        this.taxNumber = taxNumber;
    }

    public String getTaxNumber() {
        return taxNumber;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setAccountName(String accountName) {
        this.accountName = accountName;
    }

    public String getAccountName() {
        return accountName;
    }

    public void setPaymentMethod(String paymentMethod) {
        this.paymentMethod = paymentMethod;
    }

    public String getPaymentMethod() {
        return paymentMethod;
    }

    public void setPaymentPeriod(Integer paymentPeriod) {
        this.paymentPeriod = paymentPeriod;
    }

    public Integer getPaymentPeriod() {
        return paymentPeriod;
    }

    public void setDeliveryMethod(String deliveryMethod) {
        this.deliveryMethod = deliveryMethod;
    }

    public String getDeliveryMethod() {
        return deliveryMethod;
    }

    public void setDeliveryPeriod(Integer deliveryPeriod) {
        this.deliveryPeriod = deliveryPeriod;
    }

    public Integer getDeliveryPeriod() {
        return deliveryPeriod;
    }

    public void setCreditLimit(Double creditLimit) {
        this.creditLimit = creditLimit;
    }

    public Double getCreditLimit() {
        return creditLimit;
    }

    public void setCreditLevel(String creditLevel) {
        this.creditLevel = creditLevel;
    }

    public String getCreditLevel() {
        return creditLevel;
    }

    public void setCooperationStartDate(String cooperationStartDate) {
        this.cooperationStartDate = cooperationStartDate;
    }

    public String getCooperationStartDate() {
        return cooperationStartDate;
    }

    public void setCooperationEndDate(String cooperationEndDate) {
        this.cooperationEndDate = cooperationEndDate;
    }

    public String getCooperationEndDate() {
        return cooperationEndDate;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }

    public void setSupplierScore(Double supplierScore) {
        this.supplierScore = supplierScore;
    }

    public Double getSupplierScore() {
        return supplierScore;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("supplierCode", getSupplierCode())
                .append("supplierName", getSupplierName())
                .append("supplierShortName", getSupplierShortName())
                .append("supplierType", getSupplierType())
                .append("supplierLevel", getSupplierLevel())
                .append("contactPerson", getContactPerson())
                .append("contactPhone", getContactPhone())
                .append("contactEmail", getContactEmail())
                .append("contactAddress", getContactAddress())
                .append("postCode", getPostCode())
                .append("faxNumber", getFaxNumber())
                .append("businessLicense", getBusinessLicense())
                .append("taxNumber", getTaxNumber())
                .append("bankName", getBankName())
                .append("bankAccount", getBankAccount())
                .append("accountName", getAccountName())
                .append("paymentMethod", getPaymentMethod())
                .append("paymentPeriod", getPaymentPeriod())
                .append("deliveryMethod", getDeliveryMethod())
                .append("deliveryPeriod", getDeliveryPeriod())
                .append("creditLimit", getCreditLimit())
                .append("creditLevel", getCreditLevel())
                .append("cooperationStartDate", getCooperationStartDate())
                .append("cooperationEndDate", getCooperationEndDate())
                .append("status", getStatus())
                .append("supplierScore", getSupplierScore())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}